perm filename FBUG.PAL[HAL,HE] blob
sn#121123 filedate 1974-10-02 generic text, type C, neo UTF8
COMMENT ā VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 .STITLE FBUG
C00005 00003 LOCAL STORAGE AREA
C00006 ENDMK
Cā;
.STITLE FBUG
;"FREG" TYPES OUT THE FLOATING POINT REGISTERS ON THE VT05 IN
;FLOATING POINT AND OCTAL REPRESENTATION. NO REGISTERS ARE
;ALTERED BY THIS PROGRAM AND UPON COMPLETION, CONTROL IS RETURNED
;TO RUG.
FREG: MOV R0,-(SP) ;SAVE CPU REGISTERS
MOV R1,-(SP)
MOV R2,-(SP)
MOV R3,-(SP)
MOV OLDW,-(SP) ;SAVE OLD FORMAT SPECIFICATION
MOV OLDD,-(SP)
MOV #10.,R0 ;SET NEW OUTPUT FORMAT
MOV #4,R1
JSR PC,FORMAT
STF AC0,FPR0 ;SAVE THE FLOATING POINT REGISTERS
STF AC1,FPR1
STF AC2,FPR2
STF AC3,FPR3
LDF AC4,AC1
STF AC1,FPR4
LDF AC5,AC1
STF AC1,FPR5
MOV #6,R2 ;SET LOOP COUNTER
CLR R3 ;RESET POINTER INTO FR LIST
FLP: MOV #OUTC,R0 ;TYPE OUT REGISTER NAME
ADD R3,R0
JSR PC,TYPSTR
OUTSTR SPACE
MOV #OUTN,R0 ;STRING POINT FOR NUMBER
LDF FPR0(R3),AC0 ;LOAD A FLOATING POINT REGISTER
JSR PC,CVG ;CONVERT TO ASC STRING
MOV #OUTN,R0 ;TYPE OUT THE STRING
JSR PC,TYPSTR
MOV #SPACE,R0 ;TYPE OUT SOME SPACES
JSR PC,TYPSTR
MOV FPR0(R3),R0 ;TYPE OUT THE FIRST 16 BITS OF REG IN OCT
JSR PC,TYPOCT
MOV #COMMA,R0 ;TYPE A COMMA
JSR PC,TYPSTR
MOV FPR0+2(R3),R0 ;TYPE OUT SECOND 16 BITS
JSR PC,TYPOCT
CRLF
ADD #4,R3 ;INCREMENT REGISTER POINTER
SOB R2,FLP ;CHECK IF ALL 6 REG PRINTED
JSR PC,RSTFOR ;RESET OLD I/O FORMAT
MOV (SP)+,OLDD
MOV (SP)+,OLDW
MOV (SP)+,R3 ;RESTORE CPU REGISTERS
MOV (SP)+,R2
MOV (SP)+,R1
MOV (SP)+,R0
LDF FPR0,AC0 ;RESTORE FLOATING POINT REGISTERS
LDF FPR1,AC1
LDF FPR2,AC2
LDF FPR3,AC3
JMP RUG ;RETURN TO RUG
BR .-4 ;DONT CONTINUE
;LOCAL STORAGE AREA
FPR0: .WORD 0,0 ;AC0
FPR1: .WORD 0,0
FPR2: .WORD 0,0
FPR3: .WORD 0,0
FPR4: .WORD 0,0
FPR5: .WORD 0,0 ;AC5
OUTC: .ASCIZ /AC0/
.ASCIZ /AC1/
.ASCIZ /AC2/
.ASCIZ /AC3/
.ASCIZ /AC4/
.ASCIZ /AC5/
SPACE: .ASCIZ / /
COMMA: .ASCIZ /,/
.EVEN
OUTN: .BLKW 20